import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.*;

/**
 * Clase que representa a los botones del menu principal
 * y los que aparecen en las diferentae opciones del menu
 * 
 * @author Cesar Delgado 
 * @version Mayo 2012
 */
public class Boton extends Actor
{
    private final static int MENU     = 0;
    private final static int JUGAR    = 1;
    private final static int AYUDA    = 2;
    private final static int CREDITOS = 3;
    private final static int SALIR    = 4;
    private final static int PAUSE    = 5;
    
    private String mensaje;
    private int opcion;
    
    /**
     * Constructor para crear un objeto Boton con una opcion dada
     * @param opc La opcion que tendra el boton 
     */
    public Boton( int opc )
    {
       GreenfootImage imagen;
       int largoTxt;
       int anchoTxt;
       GreenfootImage texto;
       opcion = opc;
       int tipoBoton = 1;
       
       switch(opcion)
       {
           case JUGAR:
               mensaje = "Jugar";
               break;
           case AYUDA:
               mensaje = "Ayuda";
               break;
           case CREDITOS:
               mensaje = "Creditos";
               break;
           case SALIR:
               mensaje = "Salir";
               tipoBoton = 2;
               break;
           case PAUSE:
               mensaje = "Pause";
               tipoBoton = 2;
               break;
           case MENU:
               mensaje = "Menu";
               tipoBoton = 2;
               break;
       }
       
       if(tipoBoton == 1)
           imagen = new GreenfootImage("boton.png");
       else
           imagen = new GreenfootImage("boton3.png");
      
       texto = new GreenfootImage( mensaje,25,Color.WHITE,new Color(0,0,0,0) );
       largoTxt = texto.getWidth();
       anchoTxt = texto.getHeight();
       
       imagen.drawImage(texto,(imagen.getWidth()/2)-(largoTxt/2), imagen.getHeight()/2 - (anchoTxt/2));
       setImage(imagen);
    }
    
    /**
     * Act - Hace lo que sea que Boton quiera hacer. Este metodo es llamado 
     * cuando el  boton "run" o "act" son presionados
     */
    public void act() 
    {
        ScrollWorld mundo;
        java.util.List objetos;
        // Add your action code here.
        if(Greenfoot.mouseClicked(this))
        {
            mundo = (ScrollWorld)getWorld();
            mundo.boton.play();
            if( opcion == PAUSE )
            {
               mundo.cambiaOpcion(opcion);
               mundo.pausaMusica();
            }
            else
            {
               mundo.cambiaOpcion(opcion);
               objetos = mundo.getObjects( null );
               mundo.removeObjects(objetos);
               mundo.detenMusica();
            }
        }
        
    }    
}
